Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add access control check to IM read, write, invoke #12645

Merged

Conversation

mlepage-google
Copy link
Contributor

@mlepage-google mlepage-google commented Dec 6, 2021

Problem

Access control not consulted during IM interactions (read, write, invoke, events)

Change overview

This PR just adds the access control check in IM interactions,
with handling for when it fails.

Here's what it doesn't do:

  • use proper args when checking access control
  • use the result of access control check
  • do access control check for reading attribute overrides
  • do access control check for reading events

Here's what it does do:

  • ready for proper args to be hooked up
  • ready for result of access control check to be used
    (return proper status, silently discard wildcard read denied, etc.)

This PR is one of a series towards
issues #10240, #10241, etc.

Testing

  • Testing with chip-tool and chip-repl.

- Access control check still not "enabled"
- Subject descriptor not hooked up
- Request privilege still default (not custom)
- Check not necessarily in spec-required sequence (but OK for now)
- Status always returned (not omitted for denied wildcard interactions)
@todo
Copy link

todo bot commented Dec 6, 2021

get actual subject descriptor

Access::SubjectDescriptor subjectDescriptor; // TODO: get actual subject descriptor
Access::RequestPath requestPath{ .cluster = clusterId, .endpoint = endpointId };
Access::Privilege requestPrivilege = Access::Privilege::kOperate; // TODO: get actual request privilege
err = Access::GetAccessControl().Check(subjectDescriptor, requestPath, requestPrivilege);
if (err != CHIP_NO_ERROR)
{
const ConcreteCommandPath concretePath(endpointId, clusterId, commandId);
auto status = (err == CHIP_ERROR_ACCESS_DENIED) ? Protocols::InteractionModel::Status::UnsupportedAccess
: Protocols::InteractionModel::Status::Failure;
AddStatus(concretePath, status);
return CHIP_NO_ERROR;


This comment was generated by todo based on a TODO comment in 0373b3b in #12645. cc @mlepage-google.

@boring-cyborg boring-cyborg bot added the app label Dec 6, 2021
@todo
Copy link

todo bot commented Dec 6, 2021

get actual request privilege

Access::Privilege requestPrivilege = Access::Privilege::kOperate; // TODO: get actual request privilege
err = Access::GetAccessControl().Check(subjectDescriptor, requestPath, requestPrivilege);
if (err != CHIP_NO_ERROR)
{
const ConcreteCommandPath concretePath(endpointId, clusterId, commandId);
auto status = (err == CHIP_ERROR_ACCESS_DENIED) ? Protocols::InteractionModel::Status::UnsupportedAccess
: Protocols::InteractionModel::Status::Failure;
AddStatus(concretePath, status);
return CHIP_NO_ERROR;
}
}


This comment was generated by todo based on a TODO comment in 0373b3b in #12645. cc @mlepage-google.

@todo
Copy link

todo bot commented Dec 6, 2021

get actual subject descriptor

Access::SubjectDescriptor subjectDescriptor; // TODO: get actual subject descriptor
Access::RequestPath requestPath{ .cluster = aPath.mClusterId, .endpoint = aPath.mEndpointId };
Access::Privilege requestPrivilege = Access::Privilege::kView; // TODO: get actual request privilege
CHIP_ERROR err = Access::GetAccessControl().Check(subjectDescriptor, requestPath, requestPrivilege);
if (err != CHIP_NO_ERROR)
{
AttributeReportIB::Builder attributeReport = aAttributeReports.CreateAttributeReport();
ReturnErrorOnFailure(aAttributeReports.GetError());
TLV::TLVWriter backup;
attributeReport.Checkpoint(backup);
auto status = (err == CHIP_ERROR_ACCESS_DENIED) ? Protocols::InteractionModel::Status::UnsupportedAccess


This comment was generated by todo based on a TODO comment in 0373b3b in #12645. cc @mlepage-google.

@todo
Copy link

todo bot commented Dec 6, 2021

get actual request privilege

Access::Privilege requestPrivilege = Access::Privilege::kView; // TODO: get actual request privilege
CHIP_ERROR err = Access::GetAccessControl().Check(subjectDescriptor, requestPath, requestPrivilege);
if (err != CHIP_NO_ERROR)
{
AttributeReportIB::Builder attributeReport = aAttributeReports.CreateAttributeReport();
ReturnErrorOnFailure(aAttributeReports.GetError());
TLV::TLVWriter backup;
attributeReport.Checkpoint(backup);
auto status = (err == CHIP_ERROR_ACCESS_DENIED) ? Protocols::InteractionModel::Status::UnsupportedAccess
: Protocols::InteractionModel::Status::Failure;
return SendFailureStatus(aPath, attributeReport, status, &backup);


This comment was generated by todo based on a TODO comment in 0373b3b in #12645. cc @mlepage-google.

@todo
Copy link

todo bot commented Dec 6, 2021

get actual subject descriptor

Access::SubjectDescriptor subjectDescriptor; // TODO: get actual subject descriptor
Access::RequestPath requestPath{ .cluster = aPath.mClusterId, .endpoint = aPath.mEndpointId };
Access::Privilege requestPrivilege = Access::Privilege::kOperate; // TODO: get actual request privilege
CHIP_ERROR err = Access::GetAccessControl().Check(subjectDescriptor, requestPath, requestPrivilege);
if (err != CHIP_NO_ERROR)
{
auto status = (err == CHIP_ERROR_ACCESS_DENIED) ? Protocols::InteractionModel::Status::UnsupportedAccess
: Protocols::InteractionModel::Status::Failure;
return apWriteHandler->AddStatus(attributePathParams, status);
}
}


This comment was generated by todo based on a TODO comment in 0373b3b in #12645. cc @mlepage-google.

@todo
Copy link

todo bot commented Dec 6, 2021

get actual request privilege

Access::Privilege requestPrivilege = Access::Privilege::kOperate; // TODO: get actual request privilege
CHIP_ERROR err = Access::GetAccessControl().Check(subjectDescriptor, requestPath, requestPrivilege);
if (err != CHIP_NO_ERROR)
{
auto status = (err == CHIP_ERROR_ACCESS_DENIED) ? Protocols::InteractionModel::Status::UnsupportedAccess
: Protocols::InteractionModel::Status::Failure;
return apWriteHandler->AddStatus(attributePathParams, status);
}
}
if (auto * attrOverride = findAttributeAccessOverride(aClusterInfo.mEndpointId, aClusterInfo.mClusterId))


This comment was generated by todo based on a TODO comment in 0373b3b in #12645. cc @mlepage-google.

src/app/CommandHandler.cpp Outdated Show resolved Hide resolved
src/app/CommandHandler.cpp Outdated Show resolved Hide resolved
src/app/util/ember-compatibility-functions.cpp Outdated Show resolved Hide resolved
src/app/util/ember-compatibility-functions.cpp Outdated Show resolved Hide resolved
- still not "enabled"
- still not checking for events (will add later)
- removed check for read with attribute override (will add later)
- ensured checks for read, write, invoke are in correct stage
- ensured works for wildcard reads (when they are ready)
@todo
Copy link

todo bot commented Dec 8, 2021

remove override

err = CHIP_NO_ERROR; // TODO: remove override
if (err != CHIP_NO_ERROR)
{
ReturnErrorCodeIf(err != CHIP_ERROR_ACCESS_DENIED, err);
// TODO: when wildcard/group invokes are supported, handle them to discard rather than fail with status
return AddStatus(concretePath, Protocols::InteractionModel::Status::UnsupportedAccess);
}
}
err = aCommandElement.GetData(&commandDataReader);
if (CHIP_END_OF_TLV == err)


This comment was generated by todo based on a TODO comment in 8c68a22 in #12645. cc @mlepage-google.

@todo
Copy link

todo bot commented Dec 8, 2021

when wildcard/group invokes are supported, handle them to discard rather than fail with status

// TODO: when wildcard/group invokes are supported, handle them to discard rather than fail with status
return AddStatus(concretePath, Protocols::InteractionModel::Status::UnsupportedAccess);
}
}
err = aCommandElement.GetData(&commandDataReader);
if (CHIP_END_OF_TLV == err)
{


This comment was generated by todo based on a TODO comment in 8c68a22 in #12645. cc @mlepage-google.

@todo
Copy link

todo bot commented Dec 8, 2021

get actual expanded flag

bool pathWasExpanded = false; // TODO: get actual expanded flag
CHIP_ERROR err = Access::GetAccessControl().Check(subjectDescriptor, requestPath, requestPrivilege);
err = CHIP_NO_ERROR; // TODO: remove override
if (err != CHIP_NO_ERROR)
{
ReturnErrorCodeIf(err != CHIP_ERROR_ACCESS_DENIED, err);
if (pathWasExpanded)
{
aAttributeReports.Rollback(backupBeforeReport);
return CHIP_NO_ERROR;
}


This comment was generated by todo based on a TODO comment in 8c68a22 in #12645. cc @mlepage-google.

@todo
Copy link

todo bot commented Dec 8, 2021

remove override

err = CHIP_NO_ERROR; // TODO: remove override
if (err != CHIP_NO_ERROR)
{
ReturnErrorCodeIf(err != CHIP_ERROR_ACCESS_DENIED, err);
if (pathWasExpanded)
{
aAttributeReports.Rollback(backupBeforeReport);
return CHIP_NO_ERROR;
}
else
{


This comment was generated by todo based on a TODO comment in 8c68a22 in #12645. cc @mlepage-google.

@todo
Copy link

todo bot commented Dec 8, 2021

remove override

err = CHIP_NO_ERROR; // TODO: remove override
if (err != CHIP_NO_ERROR)
{
ReturnErrorCodeIf(err != CHIP_ERROR_ACCESS_DENIED, err);
// TODO: when wildcard/group writes are supported, handle them to discard rather than fail with status
return apWriteHandler->AddStatus(attributePathParams, Protocols::InteractionModel::Status::UnsupportedAccess);
}
}
if (attributeMetadata->MustUseTimedWrite() && !apWriteHandler->IsTimedWrite())
{


This comment was generated by todo based on a TODO comment in 8c68a22 in #12645. cc @mlepage-google.

@todo
Copy link

todo bot commented Dec 8, 2021

when wildcard/group writes are supported, handle them to discard rather than fail with status

// TODO: when wildcard/group writes are supported, handle them to discard rather than fail with status
return apWriteHandler->AddStatus(attributePathParams, Protocols::InteractionModel::Status::UnsupportedAccess);
}
}
if (attributeMetadata->MustUseTimedWrite() && !apWriteHandler->IsTimedWrite())
{
return apWriteHandler->AddStatus(attributePathParams, Protocols::InteractionModel::Status::NeedsTimedInteraction);


This comment was generated by todo based on a TODO comment in 8c68a22 in #12645. cc @mlepage-google.

@github-actions
Copy link

github-actions bot commented Dec 8, 2021

PR #12645: Size comparison from a7dd25e to 8c68a22

Increases above 0.2%:

platform target config section a7dd25e 8c68a22 change % change
efr32 lighting-app BRD4161A (read only) 794800 805116 10316 1.3
.data 1820 1848 28 1.5
.text 794792 805108 10316 1.3
BRD4161A+rpc (read only) 782412 792728 10316 1.3
.data 1928 1956 28 1.5
.text 782404 792720 10316 1.3
window-app BRD4161A (read only) 771736 782076 10340 1.3
.data 1784 1812 28 1.6
.text 771728 782068 10340 1.3
linux chip-tool-ipv6only arm64 (read only) 6664644 6739380 74736 1.1
(read/write) 305201 311473 6272 2.1
.data 1048 1096 48 4.6
.data.rel.ro 201888 206952 5064 2.5
.got 46984 48096 1112 2.4
.init_array 160 168 8 5.0
.rodata 338532 342036 3504 1.0
.text 5681828 5737796 55968 1.0
thermostat-no-ble arm64 (read only) 1905756 1939324 33568 1.8
(read/write) 135825 136961 1136 0.8
.data 776 824 48 6.2
.data.rel.ro 69280 70200 920 1.3
.got 3456 3584 128 3.7
.init_array 256 264 8 3.1
.rodata 123932 125228 1296 1.0
.text 1576976 1606880 29904 1.9
p6 all-clusters-app default (read/write) 2350096 2356296 6200 0.3
.text 1308360 1314560 6200 0.5
light-app default (read/write) 2281176 2291648 10472 0.5
.data 2328 2352 24 1.0
.text 1239440 1249912 10472 0.8
lock-app default (read/write) 2257264 2267728 10464 0.5
.data 2288 2320 32 1.4
.text 1215528 1225992 10464 0.9
qpg lighting-app qpg6100+debug (read only) 511812 518812 7000 1.4
.data 956 984 28 2.9
.text 506492 513492 7000 1.4
lock-app qpg6100+debug (read only) 486004 493012 7008 1.4
.data 912 940 28 3.1
.text 480684 487692 7008 1.5
telink lighting-app tlsr9518adk80d (read/write) 800142 808238 8096 1.0
text 557242 564030 6788 1.2
Increases (11 builds for efr32, linux, p6, qpg, telink)
platform target config section a7dd25e 8c68a22 change % change
efr32 lighting-app BRD4161A (read only) 794800 805116 10316 1.3
(read/write) 122992 123024 32 0.0
.bss 121168 121176 8 0.0
.data 1820 1848 28 1.5
.text 794792 805108 10316 1.3
BRD4161A+rpc (read only) 782412 792728 10316 1.3
(read/write) 139672 139712 40 0.0
.bss 137744 137752 8 0.0
.data 1928 1956 28 1.5
.text 782404 792720 10316 1.3
window-app BRD4161A (read only) 771736 782076 10340 1.3
(read/write) 121128 121164 36 0.0
.bss 119344 119352 8 0.0
.data 1784 1812 28 1.6
.text 771728 782068 10340 1.3
linux chip-tool-ipv6only arm64 (read only) 6664644 6739380 74736 1.1
(read/write) 305201 311473 6272 2.1
.bss 51649 51681 32 0.1
.data 1048 1096 48 4.6
.data.rel.ro 201888 206952 5064 2.5
.got 46984 48096 1112 2.4
.init_array 160 168 8 5.0
.rodata 338532 342036 3504 1.0
.text 5681828 5737796 55968 1.0
thermostat-no-ble arm64 (read only) 1905756 1939324 33568 1.8
(read/write) 135825 136961 1136 0.8
.bss 59457 59489 32 0.1
.data 776 824 48 6.2
.data.rel.ro 69280 70200 920 1.3
.got 3456 3584 128 3.7
.init_array 256 264 8 3.1
.rodata 123932 125228 1296 1.0
.text 1576976 1606880 29904 1.9
p6 all-clusters-app default (read/write) 2350096 2356296 6200 0.3
.bss 113124 113132 8 0.0
.text 1308360 1314560 6200 0.5
light-app default (read/write) 2281176 2291648 10472 0.5
.bss 100896 100904 8 0.0
.data 2328 2352 24 1.0
.text 1239440 1249912 10472 0.8
lock-app default (read/write) 2257264 2267728 10464 0.5
.bss 99776 99784 8 0.0
.data 2288 2320 32 1.4
.text 1215528 1225992 10464 0.9
qpg lighting-app qpg6100+debug (read only) 511812 518812 7000 1.4
(read/write) 122332 122336 4 0.0
.bss 82616 82624 8 0.0
.data 956 984 28 2.9
.text 506492 513492 7000 1.4
lock-app qpg6100+debug (read only) 486004 493012 7008 1.4
.bss 81752 81760 8 0.0
.data 912 940 28 3.1
.text 480684 487692 7008 1.5
telink lighting-app tlsr9518adk80d (read/write) 800142 808238 8096 1.0
bss 82756 82764 8 0.0
text 557242 564030 6788 1.2
Decreases (4 builds for p6, qpg)
platform target config section a7dd25e 8c68a22 change % change
p6 all-clusters-app default .heap 917704 917696 -8 -0.0
light-app default .heap 930120 930088 -32 -0.0
lock-app default .heap 931280 931240 -40 -0.0
qpg lock-app qpg6100+debug (read/write) 122336 122332 -4 -0.0
Full report (12 builds for efr32, linux, p6, qpg, telink)
platform target config section a7dd25e 8c68a22 change % change
efr32 lighting-app BRD4161A (read only) 794800 805116 10316 1.3
(read/write) 122992 123024 32 0.0
.bss 121168 121176 8 0.0
.data 1820 1848 28 1.5
.text 794792 805108 10316 1.3
BRD4161A+rpc (read only) 782412 792728 10316 1.3
(read/write) 139672 139712 40 0.0
.bss 137744 137752 8 0.0
.data 1928 1956 28 1.5
.text 782404 792720 10316 1.3
window-app BRD4161A (read only) 771736 782076 10340 1.3
(read/write) 121128 121164 36 0.0
.bss 119344 119352 8 0.0
.data 1784 1812 28 1.6
.text 771728 782068 10340 1.3
linux chip-tool-ipv6only arm64 (read only) 6664644 6739380 74736 1.1
(read/write) 305201 311473 6272 2.1
.bss 51649 51681 32 0.1
.data 1048 1096 48 4.6
.data.rel.ro 201888 206952 5064 2.5
.dynamic 560 560 0 0.0
.got 46984 48096 1112 2.4
.init 24 24 0 0.0
.init_array 160 168 8 5.0
.rodata 338532 342036 3504 1.0
.text 5681828 5737796 55968 1.0
thermostat-no-ble arm64 (read only) 1905756 1939324 33568 1.8
(read/write) 135825 136961 1136 0.8
.bss 59457 59489 32 0.1
.data 776 824 48 6.2
.data.rel.ro 69280 70200 920 1.3
.dynamic 560 560 0 0.0
.got 3456 3584 128 3.7
.init 24 24 0 0.0
.init_array 256 264 8 3.1
.rodata 123932 125228 1296 1.0
.text 1576976 1606880 29904 1.9
p6 all-clusters-app default (read/write) 2350096 2356296 6200 0.3
.bss 113124 113132 8 0.0
.data 2512 2512 0 0.0
.heap 917704 917696 -8 -0.0
.text 1308360 1314560 6200 0.5
light-app default (read/write) 2281176 2291648 10472 0.5
.bss 100896 100904 8 0.0
.data 2328 2352 24 1.0
.heap 930120 930088 -32 -0.0
.text 1239440 1249912 10472 0.8
lock-app default (read/write) 2257264 2267728 10464 0.5
.bss 99776 99784 8 0.0
.data 2288 2320 32 1.4
.heap 931280 931240 -40 -0.0
.text 1215528 1225992 10464 0.9
qpg lighting-app qpg6100+debug (read only) 511812 518812 7000 1.4
(read/write) 122332 122336 4 0.0
.bss 82616 82624 8 0.0
.data 956 984 28 2.9
.text 506492 513492 7000 1.4
lock-app qpg6100+debug (read only) 486004 493012 7008 1.4
(read/write) 122336 122332 -4 -0.0
.bss 81752 81760 8 0.0
.data 912 940 28 3.1
.text 480684 487692 7008 1.5
persistent-storage-app qpg6100+debug (read only) 108104 108104 0 0.0
(read/write) 122336 122336 0 0.0
.bss 36152 36152 0 0.0
.data 288 288 0 0.0
.text 102784 102784 0 0.0
telink lighting-app tlsr9518adk80d (read/write) 800142 808238 8096 1.0
bss 82756 82764 8 0.0
noinit 37160 37160 0 0.0
text 557242 564030 6788 1.2

@github-actions
Copy link

github-actions bot commented Dec 8, 2021

PR #12645: Size comparison from e4f3246 to c06a867

Increases above 0.2%:

platform target config section e4f3246 c06a867 change % change
efr32 lighting-app BRD4161A .data 1820 1848 28 1.5
BRD4161A+rpc .data 1928 1956 28 1.5
window-app BRD4161A .data 1784 1812 28 1.6
k32w lighting-app k32w061+se05x+release .data 1852 1880 28 1.5
lock-app k32w061+debug .data 1820 1848 28 1.5
shell k32w061+debug .data 1792 1820 28 1.6
linux chip-tool-ipv6only arm64 .data 1048 1096 48 4.6
.init_array 160 168 8 5.0
thermostat-no-ble arm64 (read only) 1932044 1939324 7280 0.4
(read/write) 136465 136961 496 0.4
.data 776 824 48 6.2
.data.rel.ro 69840 70200 360 0.5
.got 3528 3584 56 1.6
.init_array 256 264 8 3.1
.text 1601088 1606880 5792 0.4
mbed lighting-app CY8CPROTO_062_4343W+release .data 5488 5520 32 0.6
lock-app CY8CPROTO_062_4343W+release .data 5488 5520 32 0.6
p6 light-app default .data 2328 2352 24 1.0
lock-app default .data 2288 2320 32 1.4
qpg lighting-app qpg6100+debug .data 956 984 28 2.9
lock-app qpg6100+debug .data 912 940 28 3.1
Increases (26 builds for efr32, esp32, k32w, linux, mbed, nrfconnect, p6, qpg, telink)
platform target config section e4f3246 c06a867 change % change
efr32 lighting-app BRD4161A (read only) 803900 805116 1216 0.2
(read/write) 122996 123024 28 0.0
.data 1820 1848 28 1.5
.text 803892 805108 1216 0.2
BRD4161A+rpc (read only) 791512 792728 1216 0.2
(read/write) 139680 139712 32 0.0
.data 1928 1956 28 1.5
.text 791504 792720 1216 0.2
window-app BRD4161A (read only) 780852 782076 1224 0.2
(read/write) 121136 121164 28 0.0
.data 1784 1812 28 1.6
.text 780844 782068 1224 0.2
esp32 all-clusters-app c3devkit (read only) 858566 859166 600 0.1
.flash.text 858566 859166 600 0.1
m5stack (read only) 961835 962395 560 0.1
.flash.text 956451 957011 560 0.1
k32w lighting-app k32w061+se05x+release (read/write) 724516 725604 1088 0.2
.data 1852 1880 28 1.5
.text 635616 636676 1060 0.2
lock-app k32w061+debug (read/write) 615868 616956 1088 0.2
.data 1820 1848 28 1.5
.text 536336 537396 1060 0.2
shell k32w061+debug (read/write) 679124 680212 1088 0.2
.data 1792 1820 28 1.6
.text 589920 590980 1060 0.2
linux chip-tool-ipv6only arm64 (read only) 6732084 6739380 7296 0.1
(read/write) 310977 311473 496 0.2
.bss 51665 51681 16 0.0
.data 1048 1096 48 4.6
.data.rel.ro 206592 206952 360 0.2
.got 48040 48096 56 0.1
.init_array 160 168 8 5.0
.rodata 341796 342036 240 0.1
.text 5731988 5737796 5808 0.1
thermostat-no-ble arm64 (read only) 1932044 1939324 7280 0.4
(read/write) 136465 136961 496 0.4
.bss 59457 59489 32 0.1
.data 776 824 48 6.2
.data.rel.ro 69840 70200 360 0.5
.got 3528 3584 56 1.6
.init_array 256 264 8 3.1
.rodata 124988 125228 240 0.2
.text 1601088 1606880 5792 0.4
mbed all-clusters-app CY8CPROTO_062_4343W+release (read/write) 2319536 2320112 576 0.0
.text 1282112 1282688 576 0.0
lighting-app CY8CPROTO_062_4343W+release (read/write) 2305736 2306816 1080 0.0
.data 5488 5520 32 0.6
.text 1268336 1269416 1080 0.1
lock-app CY8CPROTO_062_4343W+release (read/write) 2278720 2279736 1016 0.0
.data 5488 5520 32 0.6
.text 1241320 1242336 1016 0.1
nrfconnect lighting-app nrf52840dk_nrf52840 (read/write) 903055 904123 1068 0.1
rodata 101208 101388 180 0.2
text 610104 610968 864 0.1
nrf52840dk_nrf52840+rpc (read/write) 866079 867147 1068 0.1
rodata 92504 92684 180 0.2
text 584832 585696 864 0.1
nrf5340dk_nrf5340_cpuapp (read/write) 829046 830114 1068 0.1
rodata 96464 96644 180 0.2
text 540532 541396 864 0.2
lock-app nrf52840dk_nrf52840 (read/write) 875523 876591 1068 0.1
rodata 97324 97504 180 0.2
text 589364 590228 864 0.1
nrf5340dk_nrf5340_cpuapp (read/write) 801754 802838 1084 0.1
rodata 92612 92792 180 0.2
text 519884 520748 864 0.2
pump-app nrf52840dk_nrf52840 (read/write) 880371 881439 1068 0.1
rodata 98676 98856 180 0.2
text 592880 593744 864 0.1
pump-controller-app nrf52840dk_nrf52840 (read/write) 873599 874683 1084 0.1
rodata 96816 96996 180 0.2
text 588100 588964 864 0.1
p6 all-clusters-app default (read/write) 2355624 2356296 672 0.0
.text 1313888 1314560 672 0.1
light-app default (read/write) 2290408 2291648 1240 0.1
.data 2328 2352 24 1.0
.text 1248672 1249912 1240 0.1
lock-app default (read/write) 2266512 2267728 1216 0.1
.data 2288 2320 32 1.4
.text 1224776 1225992 1216 0.1
qpg lighting-app qpg6100+debug (read only) 517744 518812 1068 0.2
(read/write) 122332 122336 4 0.0
.data 956 984 28 2.9
.text 512424 513492 1068 0.2
lock-app qpg6100+debug (read only) 491944 493012 1068 0.2
.data 912 940 28 3.1
.text 486624 487692 1068 0.2
telink lighting-app tlsr9518adk80d (read/write) 807090 808238 1148 0.1
text 563090 564030 940 0.2
Decreases (5 builds for mbed, p6, qpg)
platform target config section e4f3246 c06a867 change % change
mbed lighting-app CY8CPROTO_062_4343W+release .heap 855248 855216 -32 -0.0
lock-app CY8CPROTO_062_4343W+release .heap 856208 856176 -32 -0.0
p6 light-app default .heap 930112 930088 -24 -0.0
lock-app default .heap 931272 931240 -32 -0.0
qpg lock-app qpg6100+debug (read/write) 122336 122332 -4 -0.0
Full report (32 builds for efr32, esp32, k32w, linux, mbed, nrfconnect, p6, qpg, telink)
platform target config section e4f3246 c06a867 change % change
efr32 lighting-app BRD4161A (read only) 803900 805116 1216 0.2
(read/write) 122996 123024 28 0.0
.bss 121176 121176 0 0.0
.data 1820 1848 28 1.5
.text 803892 805108 1216 0.2
BRD4161A+rpc (read only) 791512 792728 1216 0.2
(read/write) 139680 139712 32 0.0
.bss 137752 137752 0 0.0
.data 1928 1956 28 1.5
.text 791504 792720 1216 0.2
window-app BRD4161A (read only) 780852 782076 1224 0.2
(read/write) 121136 121164 28 0.0
.bss 119352 119352 0 0.0
.data 1784 1812 28 1.6
.text 780844 782068 1224 0.2
esp32 all-clusters-app c3devkit (read only) 858566 859166 600 0.1
(read/write) 1306658 1306658 0 0.0
.dram0.bss 67648 67648 0 0.0
.dram0.data 14124 14124 0 0.0
.flash.rodata 171856 171856 0 0.0
.flash.text 858566 859166 600 0.1
.iram0.text 62076 62076 0 0.0
m5stack (read only) 961835 962395 560 0.1
(read/write) 450948 450948 0 0.0
.dram0.bss 75000 75000 0 0.0
.dram0.data 34048 34048 0 0.0
.flash.rodata 210112 210112 0 0.0
.flash.text 956451 957011 560 0.1
.iram0.text 123451 123451 0 0.0
k32w lighting-app k32w061+se05x+release (read/write) 724516 725604 1088 0.2
.bss 81248 81248 0 0.0
.data 1852 1880 28 1.5
.text 635616 636676 1060 0.2
lock-app k32w061+debug (read/write) 615868 616956 1088 0.2
.bss 71912 71912 0 0.0
.data 1820 1848 28 1.5
.text 536336 537396 1060 0.2
shell k32w061+debug (read/write) 679124 680212 1088 0.2
.bss 81612 81612 0 0.0
.data 1792 1820 28 1.6
.text 589920 590980 1060 0.2
linux chip-tool-ipv6only arm64 (read only) 6732084 6739380 7296 0.1
(read/write) 310977 311473 496 0.2
.bss 51665 51681 16 0.0
.data 1048 1096 48 4.6
.data.rel.ro 206592 206952 360 0.2
.dynamic 560 560 0 0.0
.got 48040 48096 56 0.1
.init 24 24 0 0.0
.init_array 160 168 8 5.0
.rodata 341796 342036 240 0.1
.text 5731988 5737796 5808 0.1
thermostat-no-ble arm64 (read only) 1932044 1939324 7280 0.4
(read/write) 136465 136961 496 0.4
.bss 59457 59489 32 0.1
.data 776 824 48 6.2
.data.rel.ro 69840 70200 360 0.5
.dynamic 560 560 0 0.0
.got 3528 3584 56 1.6
.init 24 24 0 0.0
.init_array 256 264 8 3.1
.rodata 124988 125228 240 0.2
.text 1601088 1606880 5792 0.4
mbed all-clusters-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2319536 2320112 576 0.0
.bss 186900 186900 0 0.0
.data 5232 5232 0 0.0
.heap 844312 844312 0 0.0
.text 1282112 1282688 576 0.0
lighting-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2305736 2306816 1080 0.0
.bss 175712 175712 0 0.0
.data 5488 5520 32 0.6
.heap 855248 855216 -32 -0.0
.text 1268336 1269416 1080 0.1
lock-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2278720 2279736 1016 0.0
.bss 174752 174752 0 0.0
.data 5488 5520 32 0.6
.heap 856208 856176 -32 -0.0
.text 1241320 1242336 1016 0.1
pigweed-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 1140008 1140008 0 0.0
.bss 11756 11756 0 0.0
.data 4376 4376 0 0.0
.heap 1020312 1020312 0 0.0
.text 103392 103392 0 0.0
shell CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2047808 2047808 0 0.0
.bss 156564 156564 0 0.0
.data 4864 4864 0 0.0
.heap 875016 875016 0 0.0
.text 1010408 1010408 0 0.0
nrfconnect lighting-app nrf52840dk_nrf52840 (read/write) 903055 904123 1068 0.1
bss 116184 116184 0 0.0
rodata 101208 101388 180 0.2
text 610104 610968 864 0.1
nrf52840dk_nrf52840+rpc (read/write) 866079 867147 1068 0.1
bss 112532 112532 0 0.0
rodata 92504 92684 180 0.2
text 584832 585696 864 0.1
nrf5340dk_nrf5340_cpuapp (read/write) 829046 830114 1068 0.1
bss 117560 117560 0 0.0
rodata 96464 96644 180 0.2
text 540532 541396 864 0.2
lock-app nrf52840dk_nrf52840 (read/write) 875523 876591 1068 0.1
bss 113448 113448 0 0.0
rodata 97324 97504 180 0.2
text 589364 590228 864 0.1
nrf5340dk_nrf5340_cpuapp (read/write) 801754 802838 1084 0.1
bss 114856 114856 0 0.0
rodata 92612 92792 180 0.2
text 519884 520748 864 0.2
pigweed-app nrf52840dk_nrf52840 (read/write) 497463 497463 0 0.0
bss 51820 51820 0 0.0
rodata 45852 45852 0 0.0
text 339492 339492 0 0.0
pump-app nrf52840dk_nrf52840 (read/write) 880371 881439 1068 0.1
bss 113360 113360 0 0.0
rodata 98676 98856 180 0.2
text 592880 593744 864 0.1
pump-controller-app nrf52840dk_nrf52840 (read/write) 873599 874683 1084 0.1
bss 113236 113236 0 0.0
rodata 96816 96996 180 0.2
text 588100 588964 864 0.1
shell nrf52840dk_nrf52840 (read/write) 781611 781611 0 0.0
bss 109552 109552 0 0.0
rodata 74280 74280 0 0.0
text 523264 523264 0 0.0
nrf5340dk_nrf5340_cpuapp (read/write) 696686 696686 0 0.0
bss 110532 110532 0 0.0
rodata 68920 68920 0 0.0
text 443904 443904 0 0.0
p6 all-clusters-app default (read/write) 2355624 2356296 672 0.0
.bss 113132 113132 0 0.0
.data 2512 2512 0 0.0
.heap 917696 917696 0 0.0
.text 1313888 1314560 672 0.1
light-app default (read/write) 2290408 2291648 1240 0.1
.bss 100904 100904 0 0.0
.data 2328 2352 24 1.0
.heap 930112 930088 -24 -0.0
.text 1248672 1249912 1240 0.1
lock-app default (read/write) 2266512 2267728 1216 0.1
.bss 99784 99784 0 0.0
.data 2288 2320 32 1.4
.heap 931272 931240 -32 -0.0
.text 1224776 1225992 1216 0.1
qpg lighting-app qpg6100+debug (read only) 517744 518812 1068 0.2
(read/write) 122332 122336 4 0.0
.bss 82624 82624 0 0.0
.data 956 984 28 2.9
.text 512424 513492 1068 0.2
lock-app qpg6100+debug (read only) 491944 493012 1068 0.2
(read/write) 122336 122332 -4 -0.0
.bss 81760 81760 0 0.0
.data 912 940 28 3.1
.text 486624 487692 1068 0.2
persistent-storage-app qpg6100+debug (read only) 108104 108104 0 0.0
(read/write) 122336 122336 0 0.0
.bss 36152 36152 0 0.0
.data 288 288 0 0.0
.text 102784 102784 0 0.0
telink lighting-app tlsr9518adk80d (read/write) 807090 808238 1148 0.1
bss 82764 82764 0 0.0
noinit 37160 37160 0 0.0
text 563090 564030 940 0.2

src/app/CommandHandler.cpp Outdated Show resolved Hide resolved
- move attribute read check back up
- respond with status if access control has serious error during
  command handling
@github-actions
Copy link

github-actions bot commented Dec 9, 2021

PR #12645: Size comparison from 5bb8377 to a0dafee

Increases above 0.2%:

platform target config section 5bb8377 a0dafee change % change
efr32 lighting-app BRD4161A .data 1820 1848 28 1.5
BRD4161A+rpc .data 1928 1956 28 1.5
window-app BRD4161A .data 1784 1812 28 1.6
k32w lighting-app k32w061+se05x+release .data 1852 1880 28 1.5
lock-app k32w061+debug .data 1820 1848 28 1.5
shell k32w061+debug .data 1792 1820 28 1.6
linux chip-tool-ipv6only arm64 .data 1048 1096 48 4.6
.init_array 160 168 8 5.0
thermostat-no-ble arm64 (read only) 1935204 1942516 7312 0.4
(read/write) 136353 136865 512 0.4
.data 776 824 48 6.2
.data.rel.ro 69800 70160 360 0.5
.got 3512 3568 56 1.6
.init_array 256 264 8 3.1
.text 1604304 1610128 5824 0.4
mbed lighting-app CY8CPROTO_062_4343W+release .data 5488 5520 32 0.6
lock-app CY8CPROTO_062_4343W+release .data 5488 5520 32 0.6
p6 light-app default .data 2328 2352 24 1.0
lock-app default .data 2288 2320 32 1.4
qpg lighting-app qpg6100+debug .data 956 984 28 2.9
lock-app qpg6100+debug .data 912 940 28 3.1
Increases (26 builds for efr32, esp32, k32w, linux, mbed, nrfconnect, p6, qpg, telink)
platform target config section 5bb8377 a0dafee change % change
efr32 lighting-app BRD4161A (read only) 806260 807428 1168 0.1
(read/write) 122980 123008 28 0.0
.data 1820 1848 28 1.5
.text 806252 807420 1168 0.1
BRD4161A+rpc (read only) 793896 795048 1152 0.1
(read/write) 139664 139696 32 0.0
.data 1928 1956 28 1.5
.text 793888 795040 1152 0.1
window-app BRD4161A (read only) 783004 784164 1160 0.1
(read/write) 121112 121140 28 0.0
.data 1784 1812 28 1.6
.text 782996 784156 1160 0.1
esp32 all-clusters-app c3devkit (read only) 860210 860806 596 0.1
.flash.text 860210 860806 596 0.1
m5stack (read only) 964195 964835 640 0.1
.flash.text 958811 959451 640 0.1
k32w lighting-app k32w061+se05x+release (read/write) 667732 668788 1056 0.2
.data 1852 1880 28 1.5
.text 586336 587364 1028 0.2
lock-app k32w061+debug (read/write) 617324 618380 1056 0.2
.data 1820 1848 28 1.5
.text 537808 538836 1028 0.2
shell k32w061+debug (read/write) 622400 623472 1072 0.2
.data 1792 1820 28 1.6
.text 540684 541728 1044 0.2
linux chip-tool-ipv6only arm64 (read only) 6783628 6790924 7296 0.1
(read/write) 317777 318273 496 0.2
.bss 51681 51713 32 0.1
.data 1048 1096 48 4.6
.data.rel.ro 208360 208720 360 0.2
.got 52992 53048 56 0.1
.init_array 160 168 8 5.0
.rodata 363612 363836 224 0.1
.text 5742324 5748148 5824 0.1
thermostat-no-ble arm64 (read only) 1935204 1942516 7312 0.4
(read/write) 136353 136865 512 0.4
.bss 59409 59441 32 0.1
.data 776 824 48 6.2
.data.rel.ro 69800 70160 360 0.5
.got 3512 3568 56 1.6
.init_array 256 264 8 3.1
.rodata 124996 125236 240 0.2
.text 1604304 1610128 5824 0.4
mbed all-clusters-app CY8CPROTO_062_4343W+release (read/write) 2321272 2321848 576 0.0
.text 1283848 1284424 576 0.0
lighting-app CY8CPROTO_062_4343W+release (read/write) 2307128 2308144 1016 0.0
.data 5488 5520 32 0.6
.text 1269728 1270744 1016 0.1
lock-app CY8CPROTO_062_4343W+release (read/write) 2279856 2280872 1016 0.0
.data 5488 5520 32 0.6
.text 1242456 1243472 1016 0.1
nrfconnect lighting-app nrf52840dk_nrf52840 (read/write) 904791 905827 1036 0.1
rodata 101440 101620 180 0.2
text 611608 612436 828 0.1
nrf52840dk_nrf52840+rpc (read/write) 867819 868855 1036 0.1
rodata 92740 92920 180 0.2
text 586336 587164 828 0.1
nrf5340dk_nrf5340_cpuapp (read/write) 830786 831822 1036 0.1
rodata 96700 96880 180 0.2
text 542036 542864 828 0.2
lock-app nrf52840dk_nrf52840 (read/write) 877023 878059 1036 0.1
rodata 97560 97740 180 0.2
text 590668 591496 828 0.1
nrf5340dk_nrf5340_cpuapp (read/write) 803270 804306 1036 0.1
rodata 92848 93028 180 0.2
text 521188 522016 828 0.2
pump-app nrf52840dk_nrf52840 (read/write) 881951 882987 1036 0.1
rodata 98912 99092 180 0.2
text 594256 595084 828 0.1
pump-controller-app nrf52840dk_nrf52840 (read/write) 875159 876195 1036 0.1
rodata 97048 97228 180 0.2
text 589420 590248 828 0.1
p6 all-clusters-app default (read/write) 2357456 2358064 608 0.0
.text 1315720 1316328 608 0.0
light-app default (read/write) 2291752 2292912 1160 0.1
.data 2328 2352 24 1.0
.text 1250016 1251176 1160 0.1
lock-app default (read/write) 2267616 2268768 1152 0.1
.data 2288 2320 32 1.4
.text 1225880 1227032 1152 0.1
qpg lighting-app qpg6100+debug (read only) 519472 520500 1028 0.2
(read/write) 122332 122336 4 0.0
.data 956 984 28 2.9
.text 514152 515180 1028 0.2
lock-app qpg6100+debug (read only) 493464 494492 1028 0.2
.data 912 940 28 3.1
.text 488144 489172 1028 0.2
telink lighting-app tlsr9518adk80d (read/write) 808702 809818 1116 0.1
text 564470 565374 904 0.2
Decreases (5 builds for mbed, p6, qpg)
platform target config section 5bb8377 a0dafee change % change
mbed lighting-app CY8CPROTO_062_4343W+release .heap 855272 855240 -32 -0.0
lock-app CY8CPROTO_062_4343W+release .heap 856232 856200 -32 -0.0
p6 light-app default .heap 930136 930112 -24 -0.0
lock-app default .heap 931296 931264 -32 -0.0
qpg lock-app qpg6100+debug (read/write) 122336 122332 -4 -0.0
Full report (32 builds for efr32, esp32, k32w, linux, mbed, nrfconnect, p6, qpg, telink)
platform target config section 5bb8377 a0dafee change % change
efr32 lighting-app BRD4161A (read only) 806260 807428 1168 0.1
(read/write) 122980 123008 28 0.0
.bss 121160 121160 0 0.0
.data 1820 1848 28 1.5
.text 806252 807420 1168 0.1
BRD4161A+rpc (read only) 793896 795048 1152 0.1
(read/write) 139664 139696 32 0.0
.bss 137736 137736 0 0.0
.data 1928 1956 28 1.5
.text 793888 795040 1152 0.1
window-app BRD4161A (read only) 783004 784164 1160 0.1
(read/write) 121112 121140 28 0.0
.bss 119328 119328 0 0.0
.data 1784 1812 28 1.6
.text 782996 784156 1160 0.1
esp32 all-clusters-app c3devkit (read only) 860210 860806 596 0.1
(read/write) 1307002 1307002 0 0.0
.dram0.bss 67616 67616 0 0.0
.dram0.data 14124 14124 0 0.0
.flash.rodata 172232 172232 0 0.0
.flash.text 860210 860806 596 0.1
.iram0.text 62076 62076 0 0.0
m5stack (read only) 964195 964835 640 0.1
(read/write) 451300 451300 0 0.0
.dram0.bss 74984 74984 0 0.0
.dram0.data 34048 34048 0 0.0
.flash.rodata 210480 210480 0 0.0
.flash.text 958811 959451 640 0.1
.iram0.text 123451 123451 0 0.0
k32w lighting-app k32w061+se05x+release (read/write) 667732 668788 1056 0.2
.bss 73744 73744 0 0.0
.data 1852 1880 28 1.5
.text 586336 587364 1028 0.2
lock-app k32w061+debug (read/write) 617324 618380 1056 0.2
.bss 71896 71896 0 0.0
.data 1820 1848 28 1.5
.text 537808 538836 1028 0.2
shell k32w061+debug (read/write) 622400 623472 1072 0.2
.bss 74124 74124 0 0.0
.data 1792 1820 28 1.6
.text 540684 541728 1044 0.2
linux chip-tool-ipv6only arm64 (read only) 6783628 6790924 7296 0.1
(read/write) 317777 318273 496 0.2
.bss 51681 51713 32 0.1
.data 1048 1096 48 4.6
.data.rel.ro 208360 208720 360 0.2
.dynamic 560 560 0 0.0
.got 52992 53048 56 0.1
.init 24 24 0 0.0
.init_array 160 168 8 5.0
.rodata 363612 363836 224 0.1
.text 5742324 5748148 5824 0.1
thermostat-no-ble arm64 (read only) 1935204 1942516 7312 0.4
(read/write) 136353 136865 512 0.4
.bss 59409 59441 32 0.1
.data 776 824 48 6.2
.data.rel.ro 69800 70160 360 0.5
.dynamic 560 560 0 0.0
.got 3512 3568 56 1.6
.init 24 24 0 0.0
.init_array 256 264 8 3.1
.rodata 124996 125236 240 0.2
.text 1604304 1610128 5824 0.4
mbed all-clusters-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2321272 2321848 576 0.0
.bss 186884 186884 0 0.0
.data 5232 5232 0 0.0
.heap 844328 844328 0 0.0
.text 1283848 1284424 576 0.0
lighting-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2307128 2308144 1016 0.0
.bss 175688 175688 0 0.0
.data 5488 5520 32 0.6
.heap 855272 855240 -32 -0.0
.text 1269728 1270744 1016 0.1
lock-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2279856 2280872 1016 0.0
.bss 174728 174728 0 0.0
.data 5488 5520 32 0.6
.heap 856232 856200 -32 -0.0
.text 1242456 1243472 1016 0.1
pigweed-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 1140008 1140008 0 0.0
.bss 11756 11756 0 0.0
.data 4376 4376 0 0.0
.heap 1020312 1020312 0 0.0
.text 103392 103392 0 0.0
shell CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2053344 2053344 0 0.0
.bss 156892 156892 0 0.0
.data 4864 4864 0 0.0
.heap 874688 874688 0 0.0
.text 1015944 1015944 0 0.0
nrfconnect lighting-app nrf52840dk_nrf52840 (read/write) 904791 905827 1036 0.1
bss 116168 116168 0 0.0
rodata 101440 101620 180 0.2
text 611608 612436 828 0.1
nrf52840dk_nrf52840+rpc (read/write) 867819 868855 1036 0.1
bss 112516 112516 0 0.0
rodata 92740 92920 180 0.2
text 586336 587164 828 0.1
nrf5340dk_nrf5340_cpuapp (read/write) 830786 831822 1036 0.1
bss 117544 117544 0 0.0
rodata 96700 96880 180 0.2
text 542036 542864 828 0.2
lock-app nrf52840dk_nrf52840 (read/write) 877023 878059 1036 0.1
bss 113432 113432 0 0.0
rodata 97560 97740 180 0.2
text 590668 591496 828 0.1
nrf5340dk_nrf5340_cpuapp (read/write) 803270 804306 1036 0.1
bss 114840 114840 0 0.0
rodata 92848 93028 180 0.2
text 521188 522016 828 0.2
pigweed-app nrf52840dk_nrf52840 (read/write) 497463 497463 0 0.0
bss 51820 51820 0 0.0
rodata 45852 45852 0 0.0
text 339492 339492 0 0.0
pump-app nrf52840dk_nrf52840 (read/write) 881951 882987 1036 0.1
bss 113344 113344 0 0.0
rodata 98912 99092 180 0.2
text 594256 595084 828 0.1
pump-controller-app nrf52840dk_nrf52840 (read/write) 875159 876195 1036 0.1
bss 113220 113220 0 0.0
rodata 97048 97228 180 0.2
text 589420 590248 828 0.1
shell nrf52840dk_nrf52840 (read/write) 781947 781947 0 0.0
bss 109544 109544 0 0.0
rodata 74280 74280 0 0.0
text 523604 523604 0 0.0
nrf5340dk_nrf5340_cpuapp (read/write) 696994 696994 0 0.0
bss 110524 110524 0 0.0
rodata 68924 68924 0 0.0
text 444244 444244 0 0.0
p6 all-clusters-app default (read/write) 2357456 2358064 608 0.0
.bss 113108 113108 0 0.0
.data 2512 2512 0 0.0
.heap 917720 917720 0 0.0
.text 1315720 1316328 608 0.0
light-app default (read/write) 2291752 2292912 1160 0.1
.bss 100880 100880 0 0.0
.data 2328 2352 24 1.0
.heap 930136 930112 -24 -0.0
.text 1250016 1251176 1160 0.1
lock-app default (read/write) 2267616 2268768 1152 0.1
.bss 99760 99760 0 0.0
.data 2288 2320 32 1.4
.heap 931296 931264 -32 -0.0
.text 1225880 1227032 1152 0.1
qpg lighting-app qpg6100+debug (read only) 519472 520500 1028 0.2
(read/write) 122332 122336 4 0.0
.bss 82616 82616 0 0.0
.data 956 984 28 2.9
.text 514152 515180 1028 0.2
lock-app qpg6100+debug (read only) 493464 494492 1028 0.2
(read/write) 122336 122332 -4 -0.0
.bss 81752 81752 0 0.0
.data 912 940 28 3.1
.text 488144 489172 1028 0.2
persistent-storage-app qpg6100+debug (read only) 108104 108104 0 0.0
(read/write) 122336 122336 0 0.0
.bss 36152 36152 0 0.0
.data 288 288 0 0.0
.text 102784 102784 0 0.0
telink lighting-app tlsr9518adk80d (read/write) 808702 809818 1116 0.1
bss 82736 82736 0 0.0
noinit 37160 37160 0 0.0
text 564470 565374 904 0.2

@andy31415
Copy link
Contributor

fast track: pr created by domain owner, has been up for 3 days, has several checkmarks.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants